package com.sa07.ui.dialog;

import javax.swing.JDialog;

import com.sa07.ui.uitls.UiTools;

/**
 * 默认的对话框类，其他对话框继承他
 * 
 * @author Long.shangbo
 *
 * 2014-2-15 上午5:28:15
 */
public abstract class DefaultConfigDialog extends JDialog {

	private static final long serialVersionUID = 505916629438117646L;

	public DefaultConfigDialog(){
		setDefaultCloseOperation(HIDE_ON_CLOSE);
		setModal(true);
		setLayout(null);
	}
	
	/**
	 * 启动
	 */
	public void launch(){
		setTitle(getWindowTitle());
		setResizable(false);
		setSize(getWindowWidth(), getWindowHeight());
		setLocation(UiTools.getCenterPosition(getWindowWidth(), getWindowHeight()));
		initComponents();
		initValue();
		initListeners();
		super.setVisible(true);
	}
	
	/**
	 * 初始化值
	 */
	protected abstract void initValue();
	
	/**
	 * 初始化监听器
	 */
	protected abstract void initListeners();

	/**
	 * 初始化组件
	 */
	protected abstract void initComponents();
	
	/**
	 * 获得窗口宽度
	 */
	protected abstract int getWindowWidth();
	
	/**
	 * 获得窗口高度
	 */
	protected abstract int getWindowHeight();
	
	/**
	 * 获得标题
	 */
	protected abstract String getWindowTitle();
}
